#ifndef __MODEL_H__
#define __MODEL_H__

#include <vector>
#include <iostream>
#include <fstream>
#include <glad/glad.h>

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include "utils.h"
#include "shader.h"
#include "mesh.h"
#include "loadobj.h"

using namespace std;

class Model {
    public:
        unsigned int vao, vbo, ebo;
        vector<Texture> textures;
        vector<Vertex> vertices;
        vector<unsigned int> indices;
        vector<Mesh> meshes;
        Model(char const *path) {
            // meshes = processModel(path);
            // parseObj(path);
            meshes = LoadModel(path).meshes;
            setVao();
        }
        void parseObj(char const *path);
        void draw(unsigned int shaderProgram);
        void setVao();
};

#endif
